package no.sachmuld.methodcombination.api.annotation;

import no.sachmuld.methodcombination.api.Direction;
import no.sachmuld.methodcombination.impl.annotation.MethodCombinationImplementation;
import no.sachmuld.methodcombination.impl.annotation.SimpleMethodCombinationInitializer;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
*
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@MethodCombinationImplementation(value = no.sachmuld.methodcombination.api.reflection.List.class, initializer = SimpleMethodCombinationInitializer.List.class)
public @interface List {
    Class<?> aroundBehaviour() default SimpleMethodCombinationDefaults.Null.class;
    Direction direction() default Direction.BOTTOM_UP;
    String primaryMethod() default SimpleMethodCombinationDefaults.DEFAULT_METHOD;
}
